/*
This file is part of Docking@Home.
http://docking.gcl.cis.udel.edu
Copyright (C) 2009 University of Delaware

Docking@Home is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Docking@Home is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Docking@Home.  If not, see <http://www.gnu.org/licenses/>.
*/
/*
	Filename: Atom.h
	Description: Represents an atoms with specific properties that are needed 
		for this simulation and rendering.
	Revision History: 
		Created - 11/06/07
	Author: Robert Keller
*/

#ifndef _Atom_h
#define _Atom_h

#include "string.h"
#include "ColorEnum.h"

class Atom 
{

public:

	// Constructor / Destructor
	Atom ();
	~Atom();

	// Member Modifiers
	void setId (int i);
	void setName (char name [5]);
	void setMass (float m);
	void setXCoord (float x);
	void setYCoord (float y);
	void setZCoord (float z);
	void setColorID ();

	// Member Accessors
	int getId () const;
	void getName (char n [5]) const;
	float getMass () const;
	float getXCoord () const;
	float getYCoord () const;
	float getZCoord () const;
	int getColorID() const;

private:	

	int id;
	char name [5];
	float mass;
	int colorID;

	// Coordinates of the atom
	float x_coor;
	float y_coor;
	float z_coor;

}; //Atom

#endif
